#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time     :2021/01/07
# @Author   :Changshu
# @File     :Exercise_645.py
# 645. 错误的集合
# 集合 S 包含从1到 n 的整数。不幸的是，因为数据错误，导致集合里面某一个元素复制了成了集合里面的另外一个元素的值，
# 导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。
# 你的任务是首先寻找到重复出现的整数，再找到丢失的整数，将它们以数组的形式返回。

class Solution:
	'''法一：使用一个列表记录nums中出现的值以及次数'''
	def findErrorNums(self, nums: list) -> list:
		res=[]
		record=[0]*len(nums)
		for n in nums:
			record[n-1]+=1
		for i in range(len(record)):
			if len(res)>1:
				break
			if record[i]==0:
				res.append(i+1)
			if record[i]>1:
				res.insert(0,i+1)
		return res


if __name__ == '__main__':
	solution=Solution()
	# nums=[1,2,2,4]
	# nums=[10,6,5,9,8,1,4,2,6,3,7]
	nums=[3,3]
	print(solution.findErrorNums(nums))

